home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FM Towns: Free Software Collection 10
/
FM Towns Free Software Collection 10.iso
/
ms_dos
/
lib
/
happysrc
/
pcset.c
< prev
next >
Wrap
Text File
|
1992-12-15
|
1KB
|
57 lines
/************************************************
*
* *** HAPPy Pascal compiler ***
* set operation routine
*
* Copyright (c) H.Asano 1992
************************************************/
#define EXTERN extern
#include <stdarg.h>
#include "pascomp.h"
static va_list marker ;
/****************************************/
/* mkset(s,i,j,k,...,-1) : */
/* 要素i,j,k...を持つ集合sの作成 */
/* 引数は-1で最後とする */
/****************************************/
Set *mkset(Set *s,int first,...)
{
int i=first ;
s->H=0;
s->L=0;
va_start(marker,first) ;
while(i != -1) {
addset((*s),i) ;
i = va_arg(marker,int) ;
}
return(s) ;
}
/****************************************/
/* orset(s1,s2) : s1 = s1とs2和集合 */
/****************************************/
Set *orset(Set *s1,Set *s2)
{
s1->H |= s2->H ;
s1->L |= s2->L ;
return(s1) ;
}
/****************************************/
/* dfset(s1,s2) : s1 = s1とs2の差集合 */
/****************************************/
Set *dfset(Set *s1,Set *s2)
{
/* 0-0 -> 0 */
/* 0-1 -> 0 */
/* 1-0 -> 1 */
/* 1-1 -> 0 */
s1->H &= (s1->H ^ s2->H) ;
s1->L &= (s1->L ^ s2->L) ;
return(s1) ;
}